iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
Mobile Development

Android 到底能幹嘛 ?系列 第 3

[Day03] Kotlin基本語法 (上)

  • 分享至 

  • xImage
  •  

首先在Android studio中我們需要新增一個專案

選取emptyActivity

選取Kotlin

以下MainActivity.kt就是使用Kotlin去撰寫的code

宣告變數

var number : Int = 42
val number02 : Int = 0
<宣告變數> <名稱> : <型態> = <數值>

val

宣告不可變的變數

var

宣告可變的變數

package com.example.user.kotlin_language

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle


class MainActivity : AppCompatActivity() {
    var number : Int = 42 //新增Integer的變數

    var message : String = "Hello" //新增String的變數

    val number02 : Int = 0
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        number += 7    // 剛剛新增的number42 會加上 7  也就是 number = number + 7
        number02 += 2  // error

        println(number) //顯示運算過的number
        println(message)  //顯示"hello"的字串

    }
}

number02 下方會出現error紅色底線 敘述"Val cannot be reassigned"
告知我們Val的number02為不可變,所以無法做運算,請改成Var可變變數

val name = "zkai"
val yearOfBirth = 1999
val yearNow = 2020
val message = "$name is ${yearNow - yearOfBirth} years old"

message 可利用$字符的方式放入變數$name ${日期運算後的年齡} 還有字串years old
若是在Java上 就會變成 message = name + "is" + (yearNow -yearOfBirth) + "years old" ;

條件式

val randomValues :Int = Random.nextInt(0, 100)
        
if(randomValues>50){
    println("$randomValues 比水平高")
}else{
    println("$randomValues 比水平低")
}

利用Random.nextInt得到一個亂數 區間[0-100]
條件式和普遍的程式語言一樣
if ( 條件 ){ 滿足條件 } else { 未滿條件 }

條件表達

  • == 等於
  • != 不等於
  • && 與 AND
  • || 或 OR
  • isEmpty 空值函數
  • isNotEmpty 非空值函數
val randomValues :String = Random.nextInt(0, 100).toString()

if(randomValues.isEmpty()){
    println("$randomValues 空的")
}else{
    println("$randomValues 有點東西")
}

這部分需要注意的是 isEmpty()這個函數只能用在字符串有關的型態
所以將randomValues設定成String
為了符合randomValues的型態String,所以Random.nextInt(0, 100)後加上.toString()
Integer型態的亂數轉換為String


上一篇
[Day02] Constraint Layout介紹使用
下一篇
[Day04] Kotlin基本語法 (中)
系列文
Android 到底能幹嘛 ?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言